perm filename DDTIME.FAI[SS,SYS] blob sn#421982 filedate 1979-02-20 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	A B C D P LPDL PDL DDTIME LOOP DECOUT NOSYML FIXNDD D.CURSOR D.LEXFR D.PPXFR D.POG D.WHOWRT D.ERASE D.WSE D.PPSTAR NDDTYP DDNBR DDTOT DDMAX DDREST DDNAME
C00006 ENDMK
C⊗;
;A B C D P LPDL PDL DDTIME LOOP DECOUT NOSYML FIXNDD D.CURSOR D.LEXFR D.PPXFR D.POG D.WHOWRT D.ERASE D.WSE D.PPSTAR NDDTYP DDNBR DDTOT DDMAX DDREST DDNAME

TITLE DDTIME

A←1
B←2
C←3
D←4

P←17

LPDL←←40
PDL:	BLOCK LPDL

DDTIME:	RESET
	MOVE P,[IOWD LPDL,PDL]
	MOVSI A,377777
	SETPR2 A,
	 JRST [	OUTSTR [ASCIZ/SETPR2 failed!./]
		EXIT]
	MOVEI A,[RADIX50 0,DDNBR↔0]
	.SYML A,
	 JRST NOSYML
	TRO A,400000
	MOVEM A,PDDNBR#
	MOVEI A,[RADIX50 0,DDTOT↔0]
	.SYML A,
	 JRST NOSYML
	TRO A,400000
	MOVEM A,PDDTOT#
	MOVEI A,[RADIX50 0,DDMAX↔0]
	.SYML A,
	 JRST NOSYML
	TRO A,400000
	MOVEM A,PDDMAX#
	MOVEI A,[RADIX50 0,DDREST↔0]
	.SYML A,
	 JRST NOSYML
	TRO A,400000
	MOVEM A,PDDRES#
	MOVEI A,[RADIX50 0,NDDTYP↔0]
	.SYML A,
	 JRST NOSYML
	MOVEM A,PNDDTY#
	CAILE A,NDDTYP
	 JRST FIXNDD		;SYSTEM PARAMETER TOO BIG, MUST RECOMPILE DDTIME
	HRLZ A,PDDNBR
	HRRI A,DDNBR
	MOVE B,PNDDTY
	ADDI B,-1(A)
	BLT A,(B)		;COPY SYSTEM DATA TO OUR CORE IMAGE
	HRLZ A,PDDTOT
	HRRI A,DDTOT
	MOVE B,PNDDTY
	ADDI B,-1(A)
	BLT A,(B)		;COPY SYSTEM DATA TO OUR CORE IMAGE
	HRLZ A,PDDMAX
	HRRI A,DDMAX
	MOVE B,PNDDTY
	ADDI B,-1(A)
	BLT A,(B)		;COPY SYSTEM DATA TO OUR CORE IMAGE
	HRLZ A,PDDRES
	HRRI A,DDREST
	MOVE B,PNDDTY
	ADDI B,-1(A)
	BLT A,(B)		;COPY SYSTEM DATA TO OUR CORE IMAGE
	OUTSTR [ASCIZ  /		Avg	Max	Avg
Number	Type	delay	delay	remainder
/]
	MOVN D,PNDDTY
	HRLZ D,D
LOOP:	MOVE A,DDNBR(D)
	PUSHJ P,DECOUT
	OUTCHR [11]
	OUTSTR @DDNAME(D)
	OUTCHR [11]
	MOVE A,DDTOT(D)
	IDIV A,DDNBR(D)
	PUSHJ P,DECOUT
	OUTCHR [11]
	MOVE A,DDMAX(D)
	PUSHJ P,DECOUT
	OUTCHR [11]
	MOVE A,DDREST(D)
	IDIV A,DDNBR(D)
	PUSHJ P,DECOUT
	OUTSTR [ASCIZ/
/]
	AOBJN D,LOOP
	EXIT

DECOUT:	IDIVI A,=10
	HRLM B,(P)
	JUMPE A,.+2
	PUSHJ P,DECOUT
	HLRZ A,(P)
	ADDI A,"0"
	OUTCHR A
	POPJ P,

NOSYML:	OUTSTR [ASCIZ /.SYML failed to find symbol values./]
	EXIT

FIXNDD:	OUTSTR [ASCIZ/NDDTYP is too small in DDTIME; recompile DDTIME and try again./]
	EXIT

D.CURSOR←←0
D.LEXFR←←1
D.PPXFR←←2
D.POG←←3
D.WHOWRT←←4
D.ERASE←←5
D.WSE←←6
D.PPSTAR←←7
NDDTYP←←10	;Total number of task types
DDNBR:	BLOCK NDDTYP	;NUMBER OF TASKS STARTED, PER TYPE
DDTOT:	BLOCK NDDTYP	;TOTAL TICKS BEFORE TASK STARTED, PER TYPE
DDMAX:	BLOCK NDDTYP	;MAXIMUM TICKS BEFORE GIVEN TASK STARTED, PER TYPE
DDREST:	BLOCK NDDTYP	;TOTAL UNUSED TICKS FOR ALL TASKS, PER TYPE
DDNAME:	[ASCIZ/CURSOR/]
	[ASCIZ/LEXFR/]
	[ASCIZ/PPXFR/]
	[ASCIZ/POG/]
	[ASCIZ/WHOWRT/]
	[ASCIZ/ERASE/]
	[ASCIZ/WSE/]
	[ASCIZ/PPSTAR/]

	END DDTIME